import Vue from "vue";

import Cookies from "js-cookie";
import "@babel/polyfill";
import "normalize.css/normalize.css"; // A modern alternative to CSS resets
import Element from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
import "./assets/icon/iconfont.css";
import "./assets/newIcon/iconfont.css";
import "@/styles/animate.min.css";
import "@/styles/index.scss"; // global css
import "@/styles/enc-common.scss"; // 通用布局样式

import App from "./App.vue";
import router from "./router";
import store from "./store";

import i18n from "./lang"; // Internationalization
import "./icons"; // icon
import "./errorLog"; // error log
import * as filters from "./filters"; // global filters
import "./registerServiceWorker";

import Viser from "viser-vue";

function bootstrap(env) {
  console.log(env);
  Vue.use(Viser);
  Vue.use(Element, {
    size: Cookies.get("size") || "medium", // set element-ui default size
    i18n: (key, value) => i18n.t(key, value)
  });
  Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key]);
  });

  Vue.config.productionTip = false;
  const vm = new Vue({
    // el: "#app",
    router,
    store,
    i18n,
    render: h => h(App),
    data: {
      eventHub: new Vue()
    }
  });
  window.addEventListener("message", e => {
    //解决刷新问题
    let loginInfo = e.data.loginInfo;
    if (loginInfo) {
      localStorage.setItem("loginInfo", e.data.loginInfo);
      let token = JSON.parse(loginInfo) ? JSON.parse(loginInfo).token : "";
      let userInfo = JSON.parse(loginInfo) ? JSON.parse(loginInfo).userInfo : "";
      store.commit("SET_TOKEN", `${token}`);
      store.commit("SET_USERINFO", userInfo);
      vm.$mount("#app");
    }
  });
}

console.log(process.env)
if (process.env.NODE_ENV === "production") {
  bootstrap(ENV || process.env);
} else if (process.env.NODE_ENV === "physics") {
  bootstrap(window.ENV);
} else {
  bootstrap(ENV || process.env);
}
